package com.passive.lock.utils.tree;

import java.util.ArrayList;
import java.util.List;
import com.passive.lock.model.vo.TDeptVo;

public class TreeDeptUtil {
	/**
	    * @Title: getfatherNode
	    * @Description 方法描述: 父节点
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TDeptVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:26
	    */
	    public final static List<TDeptVo> getfatherNode(List<TDeptVo> treeDataList) {
	        List<TDeptVo> newTreeDataList = new ArrayList<TDeptVo>();
	        for (TDeptVo TDeptVo : treeDataList) {
	            if(TDeptVo.getPid() == null||"".equals(TDeptVo.getPid())) {
	                //获取父节点下的子节点
	                TDeptVo.setChildren(getChildrenNode(TDeptVo.getId(),treeDataList));
	                //TDeptVo.setOpen(true);
	                newTreeDataList.add(TDeptVo);
	            }
	        }
	        return newTreeDataList;
	    }
	     
	    /**
	    * @Title: getChildrenNode
	    * @Description 方法描述: 子节点
	    * @param 设定文件： @param pid
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TDeptVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:50
	    */
	    private final static List<TDeptVo> getChildrenNode(String pid , List<TDeptVo> treeDataList) {
	        List<TDeptVo> newTreeDataList = new ArrayList<TDeptVo>();
	        for (TDeptVo TDeptVo : treeDataList) {
	            if(TDeptVo.getPid() == null||"".equals(TDeptVo.getPid()))  continue;
	            //这是一个子节点
	            if(TDeptVo.getPid().equals(pid)){
	                //递归获取子节点下的子节点
	          
	                TDeptVo.setChildren(getChildrenNode(TDeptVo.getId() , treeDataList));
	                newTreeDataList.add(TDeptVo);
	            }
	        }
	        return newTreeDataList;
	    }
	    
	    
	    
	    /**
		    * @Title: getfatherNode
		    * @Description 方法描述: 父节点
		    * @param 设定文件： @param treeDataList
		    * @param 设定文件： @return    
		    * @return 返回类型：List<TDeptVo>    
		    * @throws
		    * @date 最后修改时间：2015年6月9日 下午6:39:26
		    */
		    public final static List<TDeptVo> getfatherNode(List<TDeptVo> treeDataList,String groupid) {
		        List<TDeptVo> newTreeDataList = new ArrayList<TDeptVo>();
		        for (TDeptVo TDeptVo : treeDataList) {
		            if(TDeptVo.getPid().equals(groupid)) {
		                //获取父节点下的子节点
		                TDeptVo.setChildren(getChildrenNode(TDeptVo.getId(),treeDataList,groupid));
		                //TDeptVo.setOpen(true);
		                newTreeDataList.add(TDeptVo);
		            }
		        }
		        return newTreeDataList;
		    }
		     
		    /**
		    * @Title: getChildrenNode
		    * @Description 方法描述: 子节点
		    * @param 设定文件： @param pid
		    * @param 设定文件： @param treeDataList
		    * @param 设定文件： @return    
		    * @return 返回类型：List<TDeptVo>    
		    * @throws
		    * @date 最后修改时间：2015年6月9日 下午6:39:50
		    */
		    private final static List<TDeptVo> getChildrenNode(String pid , List<TDeptVo> treeDataList,String groupid) {
		        List<TDeptVo> newTreeDataList = new ArrayList<TDeptVo>();
		        for (TDeptVo TDeptVo : treeDataList) {
		            if(TDeptVo.getPid().equals(groupid))  continue;
		            //这是一个子节点
		            if(TDeptVo.getPid().equals(pid)){
		                //递归获取子节点下的子节点
		          
		                TDeptVo.setChildren(getChildrenNode(TDeptVo.getId() , treeDataList));
		                newTreeDataList.add(TDeptVo);
		            }
		        }
		        return newTreeDataList;
		    }
}
